<?php
class News_SettingController extends XPHP_Controller
{
    public function _init ()
    {
        $this->loadLayout('ControlPanel/XAdmin');
    }
    #[Authorize(roles = 'Administrator')]
    public function indexAction ()
    {
        //Lấy ra toàn bộ danh sách các setting
        $model = new Areas_News_Models_NewsSetting();
        $settings = $model->getSettings();
        //Delete url
        $deleteUrl = $this->url->action("delete");
        //Xử lý
        for ($i = 0; $i < count($settings); $i ++) {
            //Edir url
            $editUrl = $this->url->action("edit", 
            array($settings[$i]->id));
            //Thêm cột lựa chọn hành động
            $settings[$i]->action = "<a href='{$editUrl}' class='button ico-btn ico-text-edit tool-tip' title='{$settings[$i]->name}' rel='edit'>
            					</a>
            					<a href='{$deleteUrl}' class='button ico-btn ico-text-trash tool-tip' item='{$settings[$i]->name}' title='{$settings[$i]->name}' 
            					data='{$settings[$i]->id}' rel='delete'>
            					</a>";
        }
        //Trả về view
        $this->view->settings = $settings;
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function editAction ()
    {
        $model = new Areas_News_Models_NewsSetting($this->params[0]);
        return $this->view($model);
    }
    #[Authorize(roles = 'Administrator')]
    public function editPost (Areas_News_Models_NewsSetting $model)
    {
        if ($this->model->validate()) {
            if ($this->model->update())
                return $this->json(
                array('success' => true, 
                'message' => 'Cập nhật cấu hình thành công'));
            else
                return $this->json(
                array('success' => false, 
                'message' => 'Xảy ra lỗi khi cập nhật cấu hình'));
        } else
            return $this->json(
            array('success' => false, 
            'message' => 'Các thông tin nhập vào chưa hợp lệ'));
    }
    #[Authorize(roles = 'Administrator')]
    public function createAction ()
    {
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function createPost (Areas_News_Models_NewsSetting $model)
    {
        if ($this->model->validate()) {
            //Kiểm tra xem key đã tồn tại hay chưa
            if (! $this->model->hasKey($this->model->key)) {
                if ($this->model->insert())
                    return $this->json(
                    array('success' => true, 
                    'message' => 'Thêm cấu hình tin tức thành công'));
                else
                    return $this->json(
                    array('success' => false, 
                    'message' => 'Xảy ra lỗi khi cố thêm cấu hình danh mục vào hệ thống'));
            } else
                return $this->json(
                array('success' => false, 
                'message' => 'Từ khóa của cấu hình đã tồn tại trong hệ thống'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin cấu hình nhập vào chưa hợp lệ'));
        }
    }
    /**
     * Lấy ra giá trị của cấu hình
     * @param string $key
     * @return mixed Areas_News_Models_NewsSetting
     */
    public function getSettingValue ($key)
    {
        $model = new Areas_News_Models_NewsSetting();
        $settings = $model->getSettings(array('key' => $key));
        if (isset($settings[0]))
            return $settings[0]->value;
        else
            return null;
    }
}